Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
noptify is a little wrapper around nopt
module adding a more expressive,
commander-like, API and few helpers.
Examples
var program = noptify(process.argv, { program: 'name' })
.version('0.0.1')
.option('port', '-p', 'Port to listen on (default: 35729)', Number)
.option('pid', 'Path to the generated PID file', String)
var opts = program.parse();
Returns an instance of Noptify
Noptify provides the API to parse out option, shorthands and generate the proper generic help output.
process.argv
);Every noptify instance is created with two options, -h, --help
and -v, --version
.
Parse the provided options and shorthands, pass them through nopt
and
return the result.
When opts.help
is set, the help output is displayed and help
event is emitted. The process exists with 0
status, the help output is
automatically displayed and the help
event is emitted.
Examples
var program = noptify(['foo', '--help'])
.on('help', function() {
console.log('Examples');
console.log('');
console.log(' foo bar --baz > foo.txt');
});
var opts = program.parse();
// ... Help output ...
// ... Custom help output ...
// ... Exit ...
Define the program version.
Define name
option with optional shorthands, optional description and optional type.
Simply output to stdout the Usage and Help output.
Mocha generated documentation
returns an instanceof Noptify.
assert.ok(noptify() instanceof noptify.Noptify);
is typically used like so.
var program = noptify(['node', 'file.js', '-d', '--dirname', './', '-p', '3000', 'app.js', 'base.js'])
.option('debug', '-d', 'Enabled debug output', Boolean)
.option('dirname', 'The path to the output directory')
.option('port', '-p', 'The port you wish to listen on', Number)
// opts => nopt result
var opts = program.parse();
assert.deepEqual(opts, {
port: 3000,
debug: true,
dirname: './',
argv: {
remain: ['app.js', 'base.js'],
cooked: ['--debug', '--dirname', './', '--port', '3000', 'app.js', 'base.js'],
original: ['-d', '--dirname', './', '-p', '3000', 'app.js', 'base.js']
}
});
allows definitiion of shorthands separately.
var opts = noptify(['node', 'file.js', '-lc'])
.option('line-comment', 'Ouputs with debugging information', Boolean)
.shorthand('lc', '--line-comment')
.parse();
assert.equal(opts['line-comment'], true);
provides the helper method to read from stdin.
var program = noptify();
assert.ok(typeof program.stdin === 'function', 'stdin defined');
is invoked only when .parse() is called.
var program = noptify(['', '']);
var str = 'testing out stdin helper';
program.stdin(function(err, res) {
assert.equal(res, str);
done();
});
program.parse();
process.nextTick(function() {
process.stdin.emit('data', str);
process.stdin.emit('end');
});
provides the .command() utility.
assert.ok(typeof noptify().command === 'function');
can be a simple function.
var program = noptify(['', '', 'init', '--debug', 'foo']).option('debug', 'an option');
program.command('init', function(args, opts) {
// args ==> sliced args at command position
// opts ==> nopt parsed object
assert.deepEqual(args, ['--debug', 'foo']);
assert.equal(opts.debug, true);
assert.equal(opts.argv.remain[0], 'foo');
done();
});
program.parse();
or another program, an Noptify instance.
var args = ['', '', 'init', '--debug', 'myapp', 'foo'];
var init = noptify(args)
.option('debug', 'Debug output')
.command('myapp', done.bind(null, null));
noptify(args).command('init', init).parse();
FAQs
nopt wrapper with commander-like API
The npm package noptify receives a total of 45,614 weekly downloads. As such, noptify popularity was classified as popular.
We found that noptify demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.